package com.gmrz.webauthn.db.dao;

import com.gmrz.uaf.db.DAOException;
import com.gmrz.webauthn.protocol.v1.schema.WebAuthnMetadata;

import java.util.List;
import java.util.Set;

public interface WebAuthnMetadataDAO {

    /**
     * 根据AAGUID获取元数据信息
     *
     * @param aaguid
     * @return WebAuthnMetadata 元数据信息
     * @throws DAOException
     */
    WebAuthnMetadata findByAAGUID(String aaguid) throws DAOException;

    /**
     * 根据策略ID获取相关的元数据信息
     *
     * @param policyId
     * @return
     * @throws DAOException
     */
    List<WebAuthnMetadata> findMetadataByPolicyID(String policyId) throws DAOException;

    /**
     * 根据渠道名称、认证类型、交易类型获取策略内的AAGUIID
     *
     * @param tenantId  渠道名称
     * @param authType  认证类型
     * @param transType 交易类型
     * @return String[] AAGUID集合
     * @throws DAOException
     */
    Set<String> findAaguidArr(String tenantId, String authType, String transType) throws DAOException;

}
